public static String constructMessage(Messageable agent, MessageType type) {
  ...
  switch(type) {
    case MEASUREMENT:
      am = new MeasureMessage();
      returnerString = type.get() + AMessage.messageSplit + am.constructSpecialMessage(agent);
      break;
    case EMIT:
      am = new EmitMessage();
      returnerString = type.get() + AMessage.messageSplit + am.constructSpecialMessage(agent);
      break;
    ...
    default:
  }
  return returnerString;
}